/************************************************************************
                        BaseType.h - Copyright Claudio Botta

This library is free software; you can redistribute it and/or modify it 
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or 
(at your option) any later version.
This library is distributed in the hope that it will be useful, but 
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
License for more details.

You should have received a copy of the GNU Lesser General Public License 
along with this library; if not, write to the 
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 
Boston, MA 02110, USA

This file was generated on Sam Mär 15 2008 at 10:58:11
The original location of this file is /home/bottac/geomagick/BaseType.h
/usr/share/apps/umbrello/headings/heading.h
**************************************************************************/


#ifndef BASETYPE_H
#define BASETYPE_H

#include "../geomagickGlobal.h"	

#include <string>
#include <vector>
#include <iostream>
#include <boost/shared_ptr.hpp>



using namespace std;

namespace geomagick{

class BaseType;


struct BaseTypeId{
	 BaseType* (*init)();
	 string (*getTypeName)(); 
};

class AttributeType
{

};



/**
  * class BaseType
  */

class BaseType
{
public:

  // Constructors/Destructors
  //  

  // Static Public attributes
  //  


  // Public attributes
  //  


  // Public attribute accessor methods
  //  

  // Public attribute accessor methods
  //  


protected:

  // Static Protected attributes
  //  

  // Protected attributes
  //  

public:


  // Protected attribute accessor methods
  //  

protected:

public:


  // Protected attribute accessor methods
  //  

protected:


private:

  // Static Private attributes
  //  

  // Private attributes
  //  

  vector<AttributeType> m_Attributes;
public:


  // Private attribute accessor methods
  //  

private:

public:


  // Private attribute accessor methods
  //  
	
   virtual void printName(){cout << "BaseType \n";}

   static BaseType* init(){return (new BaseType);}
   static string getTypeName(){return "BaseType";}
   virtual string vgetTypeName(){return "BaseTyppe";}
   static BaseTypeId* getTypeId(){BaseTypeId* newBaseTypeId = new BaseTypeId; 
					newBaseTypeId->getTypeName = BaseType::getTypeName;
					newBaseTypeId->init = BaseType::init; 
					return newBaseTypeId;}

  /**
   * Set the value of m_Attributes
   * @param new_var the new value of m_Attributes
   */
  void setAttributes ( vector<AttributeType> new_var );

  /**
   * Get the value of m_Attributes
   * @return the value of m_Attributes
   */
  vector<AttributeType> getAttributes ( );

private:



};

}
#endif // BASETYPE_H
